package com.itheima;

import com.itheima.car.Car;

import java.util.ResourceBundle;

/**
 * 工厂类，负责创建对象
 */
public class BeanFactory {

    /**
     * 通过反射在配置文件中读取类的名字，并且创建对象
     * 通过名字获取一辆汽车
     * @param id 汽车名字，键的名字
     * @return 汽车
     */
    public static Car getBean(String id) {
        //1.读取配置文件
        ResourceBundle bundle = ResourceBundle.getBundle("bean");
        //2.通过键获取值，值就是类全名
        String clazzName = bundle.getString(id);
        //声明一辆车
        Car car = null;
        try {
            //3.通过反射获取一个类对象
            Class<?> clazz = Class.forName(clazzName);
            //4.获取构造方法，创建对象
            car = (Car) clazz.getConstructor().newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return car;
    }

}
